IDispatch

Otázka od: Tomas Folprecht

25. 9. 2002 18:03

Dobry den,

nemohl by mi nekdo poslat priklad zdrojaku, ze ktereho bude i mne zrejme, jak
se vola metoda GetIDsOfNames a jak jeji
vysledky pouzit v metode Invoke.
Jak ziskam vsechny parametry, ktere tyto metody pozaduji?

Diky

Tomas Folprecht

Odpovedá: Radim Kunz

25. 9. 2002 17:21


----- Original Message -----
From: "Tomas Folprecht" <tomas@apkfolprecht.cz>
To: <delphi-l@clexpert.cz>
Sent: Wednesday, September 25, 2002 1:28 PM
Subject: IDispatch


> Dobry den,
>
> nemohl by mi nekdo poslat priklad zdrojaku, ze ktereho bude i mne zrejme,
jak se vola metoda GetIDsOfNames a jak jeji
> vysledky pouzit v metode Invoke.
> Jak ziskam vsechny parametry, ktere tyto metody pozaduji?
>
> Diky
>
> Tomas Folprecht
>

Zdrojak ti neposlu, ale nejaky popis

function xxx.GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount,
                             LocaleID: Integer; DispIDs: Pointer): HResult;

IID - nepouziva se, bylo to urceno pro budoucnost, ktera uz asi nenastane.

Names - typu PVariantArgList, najdes v unite ActiveX, tam nacpes seznam
nazvu metod, ktere chces
prevest na id funkci. Doporucuji prevadet po jedne funkci.

NameCount - pocet nazvu metod v Names

LocaleID - jazyk, nepouziva se

DispIDs - typu PDispIdList dekl. v unite ActiveX, pointr na seznam idecek
funkci, je to
vlastne vysledek funkce GetIdsOfNames.



function xxx.Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
  Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult;


DispID, ID funkce, kterou zjistila GetIdsOfNames,

IID - nepouziva se

LocalID - nepouziva se

Flags - rozliseni jestli to je procedura, funkce nebo property, hodnoty si
najdi
v MSDN

Params - typ PDispParams dekl. v unite ActiveX, je tam seznam parametru

VarResult: typu PVariant, pointr na vysledek, pokud slo o funkci, jinak NIL.

ExceptInfo a ArgErr, neco s chybama, z hlavy nevim.

Radim